-
Notifications
You must be signed in to change notification settings - Fork 43
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[web] SpacePolicy as pop-up #1090
Conversation
7d9ed18
to
2990e6f
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
So far, it looks good. I really like the simple, but clever, trick you did to avoid repeating same lines in the test examples. I wonder why I didn't think on it before 😜 I'm gonna think that I'm simply less lazy than you 😄
summaryLabels: [ | ||
// TRANSLATORS: This is presented next to the label "Find space", so the whole sentence | ||
// would read as "Find space performing a custom set of actions". | ||
N_("performing a custom set of actions") |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
NP: I have asked about the need of using N_
and _
here instead of directly _
. See #726 (comment)
Asking because I've used directly _(
in other places and, unless I'm wrong, it works.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
According to the @lslezak answer, you do not need 'N_
here, unless we decide to start wrapping Object.freeze
to these objects.
const openPopup = async (props = {}) => { | ||
const allProps = { policy, devices, actions, ...props }; | ||
const { user } = plainRender(<ProposalSpacePolicyField { ...allProps } />); | ||
const button = screen.getByRole("button"); | ||
|
||
await user.click(button); | ||
const dialog = screen.getByRole("dialog", { name: "Find Space" }); | ||
return { user, dialog }; | ||
}; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Cool! 👌
}); | ||
|
||
it("does not render the policy actions", async () => { | ||
const { dialog } = await openPopup(); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
That saves a lot of duplicated lines! 🎉
8d2e0ee
to
0502c13
Compare
- The state about expanded devices can be directly stored in the component. - There are no unmounts when changing the policy or actions, so there is no need of remembering the state of an unmounted component.
- Use description from backend. - Simplify columns.
ce26918
to
ca49bc3
Compare
Just a note for people reading this. It has been moved not only for avoid having too much tables in the same page. We also found a kind of a pattern in that page which is, more or less, to move to a dialog things that are not applied immediately or things that are actually related with the real status of the current system, not the proposal that is going on. Of course, we can elaborate this a bit more. |
@@ -260,6 +237,18 @@ const DeviceRow = ({ | |||
onCollapse = noop, | |||
onChange = noop | |||
}) => { | |||
// Generates the action value according to the policy. | |||
const action = () => { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I'm not sure if this (together with the useEffect
below) is the best (ie. most usable) behavior, but I find it reasonable enough to get this merged. We can re-evaluate in the future based on user's feedback.
// ensures that. | ||
|
||
// Stores whether the custom policy has been used. | ||
useEffect(() => { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
See https://github.com/openSUSE/agama/pull/1090/files#r1526086667. As said there, I'm not sure this will be the final behavior, but it's not a stopper to merge (is actually quite good).
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I approve changes introduced by @joseivanlopez, but I cannot effectively approve the PR since I'm the original author.
As part of the Storage UI changes described at https://github.com/openSUSE/agama/blob/master/doc/storage_ui.md document, this PR aims to merge into master the changes already available in the `storage_ui` feature branch, which has been already tested and validated. Namely, * #1071 Added the following information to D-Bus: * The list of actions includes the SID of the affected device. * The partition table exports the unused slots. * The LVM devices (volume groups, physical volumes and logical volumes) are exported. * The block devices includes their start block and also indicates whether the device is encrypted. * The staging devices are exported. * #1079 Adapt the storage client to the changes in the D-Bus API and adapt `ProposalPage` component to read the information about the devices if needed. * #1082 Added new D-Bus interfaces `Device` , `Partition`, `LVM.LogicalVolume` and adapt `Filesystem` interface. It requires yast/yast-storage-ng#1373. * #1088 Replaced the `Planned Actions` section in the storage proposal for a `Result` one which presents how the storage would look after installation instead of just the list of actions. * #1090 Moved the space policy configuration to a popup. * #1098 Replace a `Resize` by `Before` label as it was suggested during the presentation of the UI in a review meeting.
Prepare for releasing Agama 8. It includes the following pull requests: * #884 * #886 * #914 * #918 * #956 * #957 * #958 * #959 * #960 * #961 * #962 * #963 * #964 * #965 * #966 * #969 * #970 * #976 * #977 * #978 * #979 * #980 * #981 * #983 * #984 * #985 * #986 * #988 * #991 * #992 * #995 * #996 * #997 * #999 * #1003 * #1004 * #1006 * #1007 * #1008 * #1009 * #1010 * #1011 * #1012 * #1014 * #1015 * #1016 * #1017 * #1020 * #1022 * #1023 * #1024 * #1025 * #1027 * #1028 * #1029 * #1030 * #1031 * #1032 * #1033 * #1034 * #1035 * #1036 * #1038 * #1039 * #1041 * #1042 * #1043 * #1045 * #1046 * #1047 * #1048 * #1052 * #1054 * #1056 * #1057 * #1060 * #1061 * #1062 * #1063 * #1064 * #1066 * #1067 * #1068 * #1069 * #1071 * #1072 * #1073 * #1074 * #1075 * #1079 * #1080 * #1081 * #1082 * #1085 * #1086 * #1087 * #1088 * #1089 * #1090 * #1091 * #1092 * #1093 * #1094 * #1095 * #1096 * #1097 * #1098 * #1099 * #1100 * #1102 * #1103 * #1104 * #1105 * #1106 * #1109 * #1110 * #1111 * #1112 * #1114 * #1116 * #1117 * #1118 * #1119 * #1120 * #1121 * #1122 * #1123 * #1125 * #1126 * #1127 * #1128 * #1129 * #1130 * #1131 * #1132 * #1133 * #1134 * #1135 * #1136 * #1138 * #1139 * #1140 * #1141 * #1142 * #1143 * #1144 * #1145 * #1146 * #1147 * #1148 * #1149 * #1151 * #1152 * #1153 * #1154 * #1155 * #1156 * #1157 * #1158 * #1160 * #1161 * #1162 * #1163 * #1164 * #1165 * #1166 * #1167 * #1168 * #1169 * #1170 * #1171 * #1172 * #1173 * #1174 * #1175 * #1177 * #1178 * #1180 * #1181 * #1182 * #1183 * #1184 * #1185 * #1187 * #1188 * #1189 * #1190 * #1191 * #1192 * #1193 * #1194 * #1195 * #1196 * #1198 * #1199 * #1200 * #1201 * #1203 * #1204 * #1205 * #1206 * #1207 * #1208 * #1209 * #1210 * #1211 * #1212 * #1213 * #1214 * #1215 * #1216 * #1217 * #1219 * #1220 * #1221 * #1222 * #1223 * #1224 * #1225 * #1226 * #1227 * #1229
Problem
A new table is going to be added to present the storage result, see #1088. Having both the table for configuring the space policy and the table for the result at the same page is too much.
Solution
Move the space policy configuration to a popup.
Screenshots
Toggle